import os
import sys

import pandas as pd
import xlwings as xw

base_path = os.path.dirname(os.path.realpath(sys.argv[0]))
json_text = pd.read_json(os.path.join(base_path, 'config.json'))
excel_path =os.path.join(base_path, json_text.iloc[0, 0])
sheet_name = json_text.iloc[0, 1]


df=pd.read_excel(excel_path,sheet_name=sheet_name,usecols=['部门名称','位置（楼宇）','物料损耗属性','货龄（月）','挂账人姓名','物料实际数量'],dtype={'物料实际数量':int,'货龄（月）':str})
df.rename(columns={'部门名称':'部门','位置（楼宇）':'位置','物料损耗属性':'损耗属性','货龄（月）':'货龄','挂账人姓名':'挂账人','物料实际数量':'数量'},inplace=True)
df['部门']=df['部门'].str.split('/').str[-1]
df['位置'] = df['位置'].str.split('-').str[1]
df.pivot_table(index=['部门','位置','损耗属性','货龄','挂账人'],values='数量',aggfunc='sum')
wb=xw.Book(excel_path)
sht=wb.sheets['透视表']
# 删除A列至Z列
sht.range('A:F').api.ClearContents()
sht.range('A1').options(index=False).value=df

# 刷新所有数据透视表和数据连接
wb.api.RefreshAll()
# # 调用VBA宏
# macro = wb.app.macro('RepeatItemLabels')
# macro(num_rows)